Gradual Soundness: Lessons from Static Python

نویسندگان

چکیده

Context: Gradually-typed languages allow typed and untyped code to interoperate, but typically come with significant drawbacks. In some languages, the types are unreliable; in others, communication across type boundaries can be extremely expensive; still others only limited forms of interoperability. The research community is actively seeking a sound, fast, expressive approach gradual typing. Inquiry: This paper describes Static Python, language developed by engineers at Instagram that has proven itself reasonably production. Python's essentially programmer-tunable combination concrete transient approaches from literature. Concrete provide full soundness low performance overhead, impose nonlocal constraints. Transient sound shallow sense easier use; they help bridge gap between code. Approach: We evaluate its current state develop model captures essence types. draw upon personal communication, bug reports, Python regression test suite this model. Knowledge: Our main finding arises mix an effective way lower maintenance cost approach. also find method-based JIT technology eliminate costs On more technical level, two contributions: evaluation Python. process formalization found several errors implementation, including fatal errors. Grounding: implemented PLT Redex tested using property-based tests 265 suite. includes small core convey ideas soundness. claims based on production experience web server. Migrations server have caused 3.7\% increase requests handled per second maximum CPU load. Importance: first whose piece-meal application realistic codebase consistently improved performance. Other designers may wish replicate approach, especially those who currently maintain unsound path

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Computational soundness of static equivalence

Privacy related properties in electronic voting are naturally expressed as indistinguishability properties. This motivates the study of observational equivalence, as well as static equivalence in the context of the AVOTÉ project. In this report we survey the existing results on the computational soundness of symbolic indistinguishability relations in the presence of a passive adversary, for whi...

متن کامل

Adaptive Soundness of Static Equivalence

We define a framework to reason about implementations of equational theories in the presence of an adaptive adversary. We particularly focus on soundess of static equivalence. We illustrate our framework on different equational theories: symmetric encryption, modular exponentiation and also joint theories of encryption and modular exponentiation. Finally, we define a model for symbolic analysis...

متن کامل

A Static Type Inference for Python

Dynamic languages, like Python, are attractive because they guarantee that no correct program is rejected prematurely. However, this comes at a price of losing early error detection, and making both code optimization and certification harder tasks when compared with static typed languages. Having the static certification of Python programs as a goal, we developed a static type inference system ...

متن کامل

Static and Dynamic Method Unboxing for Python

The Python programming language supports object-oriented programming using a simple and elegant model that treats member variables, methods, and various metadata as instances of a single kind of ‘attribute’. While this allows a simple implementation of an interpreter that supports advanced metaprogramming features, it can inhibit the performance of certain very common special cases. This paper ...

متن کامل

Static and Dynamic Method Unboxing for Python

The Python programming language supports object-oriented programming using a simple and elegant model that treats member variables, methods, and various metadata as instances of a single kind of ‘attribute’. While this allows a simple implementation of an interpreter that supports advanced metaprogramming features, it can inhibit the performance of certain very common special cases. This paper ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: The art, science, and engineering of programming

سال: 2022

ISSN: ['2473-7321']

DOI: https://doi.org/10.22152/programming-journal.org/2023/7/2